Estadística Descriptiva Multivariadas

Análisis de Componentes Principales

Jimmy A Corzo S, PhD
Giovany Babativa-Márquez, PhD

Proceso de analítica

Wickham, H. y otros (2023)

Métodos de reducción de la dimensionalidad

Dos modos



Tablas Múltiples



Métodos multi-way



Tipos de análisis

ANÁLISIS DE COMPONENTES PRINCIPALES

Objetivo general

Método para reducir la dimensionalidad de los datos conservando la mayor cantidad de información. El método se debe usar cuando las variables son cuantitativas y existe presencia de correlación

Objetivos específicos

  • Visualizar patrones: Sirve para visualizar la estructura de los datos y detectar patrones emergentes.

  • Construir de índices sintéticos: Las variables originales se resumen en un conjunto menor de componentes principales que contienen información de todas las variables originales.

  • Identificar factores latentes: Identifica los factores principales que explican los cambios relacionados con el tema de interés.

  • Identificar grupos: Ayuda a identificar grupos de individuos que comparten características similares.

Introducción

Sea \(\mathbf{X}\) la matriz de datos, con \(\mathbf{x}_i \in \mathbb{R}^p,\ i \in \{1, \dots, n\}\), que representa los valores de \(p\) variables cuantitativas para \(n\) individuos, se busca investigar si es posible representar los individuos mediante \(r\) variables (\(r<p\)), con poca, o ninguna pérdida de información, si es posible.

CÁLCULO DE LAS COMPONENTES

Formulación del problema

Sea \(\mathbf{x}_i \in \mathbb{R}^p\), \(i=1,\dots,n\), un conjunto de observaciones centradas.

El objetivo del Análisis de Componentes Principales (PCA) es encontrar un subespacio de dimensión \(r < p\) que minimice el error de reconstrucción:

\[ \min_{U \in \mathbb{R}^{p \times r}} \sum_{i=1}^n \left\| \mathbf{x}_i - UU^\top \mathbf{x}_i \right\|^2 \quad \text{sujeto a} \quad U^\top U = I_r \]

donde las columnas de \(U\) son ortonormales.

Interpretación geométrica

  • \(UU^\top \mathbf{x}_i\) es la proyección ortogonal de \(\mathbf{x}_i\) sobre el subespacio generado por \(U\).
  • El problema busca:

El subespacio de dimensión \(r\) que mejor aproxima los datos.

Equivalente a minimizar la pérdida de información.

Forma matricial

Sea \(X \in \mathbb{R}^{n \times p}\) la matriz de datos centrados. El problema es equivalente a:

\[ \min_{U} \| X - X U U^\top \|_F^2 \quad \text{sujeto a} \quad U^\top U = I_r \]

donde \(\|\cdot\|_F\) es la norma de Frobenius, es decir, \(\|A\|^2_F=\operatorname{tr}\!\left(A^\top A\right)\). Entonces:

\[ \min_{U} \| X - X U U^\top \|_F^2 = \operatorname{tr}\!\left(X^\top X\right) - \operatorname{tr}\!\left(U^\top X^\top XU\right) \]

El primer término no depende de \(U\).

Problema equivalente

\[ \max_{U} \operatorname{tr}\!\left(U^\top X^\top XU\right) \quad \text{sujeto a} \quad U^\top U = I_r \]

Si definimos la matriz de covarianza:

\[ S = \frac{1}{n} X^\top X \]

obtenemos:

\[ \max_{U} \operatorname{tr}(U^\top S U) \quad \text{sujeto a} \quad U^\top U = I_r \]

Maximización por multiplicadores de Lagrange

Sea \(S = \frac{1}{n}X^\top X\) la matriz de covarianzas. El problema de PCA puede escribirse como:

\[ \max_{U} \operatorname{tr}(U^\top S U) \quad \text{sujeto a} \quad U^\top U = I_r. \]

Construimos el Lagrangiano:

\[\mathcal{L} = \operatorname{tr}(U^\top S U) - \operatorname{tr}\!\left[\Lambda(U^\top U - I_r)\right]\]

donde \(\Lambda\) es simétrica.

Maximización por multiplicadores de Lagrange

Derivando respecto a \(U\):

\[2SU - 2U\Lambda = 0\]

Por lo tanto:

\[SU = U\Lambda.\]

Esto implica que:

\[ S u_k = \lambda_k u_k, \quad k=1,\dots,r. \]

Las columnas de \(U\) son los autovectores de \(S\) asociados a los mayores autovalores.

Interpretación

Para una dirección unitaria \(u\):

\[ \mathrm{Var}(Xu) = u^\top S u. \]

PCA busca:

\[ \max_{\|u\|=1} u^\top S u. \]

Por lo tanto:

  • Primera componente → máxima varianza
  • Segunda → máxima varianza restante
  • Direcciones ortogonales

Componentes Principales

Las componentes principales se obtienen como:

\[ Z = XU \]

Reconstrucción de los datos:

\[ \hat X = ZU^\top \]

Interpretación:

  • \(U\) → direcciones principales
  • \(Z\) → coordenadas en el nuevo sistema

Descripción del ACP

Descripción del ACP

Reproducir la matriz original usando menos dimensiones


Esquema de las componentes


Interpretación en el espacio de las componentes

Interpretación en el espacio de las componentes

PROPIEDADES DE LAS COMPONENTES

Propiedades de las componentes

EJEMPLO

Gran Encuesta Integrada de Hogares - GEIH

El conjunto de datos RESUMEN.sav contiene un preprocesamiento obtenido de la GEIH del DANE a nivel departamental para algunas variables de interés.


library(pacman)
p_load(tidyverse, janitor,
       FactoMineR, factoextra, Factoshiny, 
       skimr, corrplot, psych, gt, gtsummary, haven)

url <- "https://github.com/jgbabativam/AnaDatos/raw/main/datos/RESUMEN.sav"
datos <- read_sav(url) |> as_factor()


Use el comando glimpse() y skim() para explorar el conjunto de datos.

Preparación del conjunto de datos

EL ACP es una técnica que se aplica sobre variables cuantitativas.

datos <- datos |> 
         column_to_rownames(var = "DPTO")


corrplot(datos |> cor(),
         method = "color", type = "upper", addCoef.col = "black", tl.col = "black", tl.srt = 45,
         col = colorRampPalette(c("darkred", "white", "steelblue"))(200))

Varianza explicada por las componentes

res <- PCA(datos, scale.unit = T, graph = F)
fviz_screeplot(res, addlabels = TRUE, ylim = c(0, 60))

Análisis de las contribuciones

corrplot(res$var$contrib, is.corr=FALSE, tl.col = "black")

Análisis de la inercia por variables

corrplot(res$var$cos2, is.corr=FALSE, tl.col = "black")

Primer plano factorial para las variables

fviz_pca_var(res, 
             col.var="contrib",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE)

Primer plano factorial para los individuos

fviz_pca_ind(res, col.ind = "cos2",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE)

Biplot

fviz_pca_biplot(res, repel = TRUE, col.ind = "blue", col.var = "red")

Construcción de índices sintéticos

Teniendo en cuenta que:

\[\mathbf{Z} = \mathbf{XU}\]

Entonces una CP es una variable latente que resume la información contenida en las variables originales. Por ejemplo, la primera CP es:

\[z_{1i} = u_{11} \cdot x_{1i} + \cdots +u_{1p} \cdot x_{pi}\]

La matriz \(\mathbf{U}\) actúa como los ponderadores de las variables de la matriz \(\mathbf{X}\), con lo cual \(\mathbf{Z}\) es un índice que resume la información contenida en las variables originales. Como cada CP está incorrelacionada con las demás, entonces la información que explica cada una es diferente.